/**
 * @param {arr1,arr2} 两个数组
 * @return {newArr} 去重后的数组
 * **/
export const arrDeduplication = (arr1: Array<string | number>, arr2: Array<string | number>) => {
  let arr = arr1.concat(arr2) //合并数组
  let arrNew = new Set(arr) //通过set集合去重
  return Array.from(arrNew)
}

/**
 * @param {json1,json2} 两个对象数组
 * @return {newArr} 去重后的对象数组
 * **/
interface InitObj {
  id: string | number
}
export const arr_obj_deduplication = <T>(json1: Array<InitObj & T>, json2: Array<InitObj & T>) => {
  let json = json1.concat(json2) //两个数组对象合并
  let newJson = [] //盛放去重后数据的新数组
  for (const item1 of json) {
    //循环json数组对象的内容
    let flag = true //建立标记，判断数据是否重复，true为不重复
    for (const item2 of newJson) {
      //循环新数组的内容
      if (item1.id == item2.id) {
        //让json数组对象的内容与新数组的内容作比较，相同的话，改变标记为false
        flag = false
      }
    }
    if (flag) {
      //判断是否重复
      newJson.push(item1) //不重复的放入新数组。  新数组的内容会继续进行上边的循环。
    }
  }
  return newJson
}
